Added Multimedia Video and Display GStreamer test scripts#290
Added Multimedia Video and Display GStreamer test scripts#290nitinn22 wants to merge 7 commits intoqualcomm-linux:mainfrom
Conversation
Signed-off-by: Nitin Nakka <nitinn@qti.qualcomm.com>
Signed-off-by: Nitin Nakka <nitinn@qti.qualcomm.com>
…sing Signed-off-by: Nitin Nakka <nitinn@qti.qualcomm.com>
There was a problem hiding this comment.
Please move the generic helpers currently defined in Video_Encode_Decode/run.sh into Runner/utils/lib_gstreamer.sh so other GST tests can reuse them:
get_resolution_params() ->gstreamer_resolution_to_wh()
get_encoder_element() / get_decoder_element() -> gstreamer_v4l2_{encoder,decoder}_for_codec()
get_file_extension() -> gstreamer_container_ext_for_codec() (or similar)
Extract pipeline string creation into library builders:
gstreamer_build_v4l2_encode_pipeline()
gstreamer_build_v4l2_decode_pipeline()
Move bitrate selection + file-size helper into lib (gstreamer_bitrate_for_resolution, gstreamer_file_size_bytes) to avoid re-implementations.
Keep .res emission + summary logic in run.sh. library functions should not write results directly.
Runner/suites/Multimedia/GSTreamer/Display/Waylandsink_Playback/run.sh
Outdated
Show resolved
Hide resolved
Runner/suites/Multimedia/GSTreamer/Display/Waylandsink_Playback/Waylandsink_Playback.yaml
Show resolved
Hide resolved
Runner/suites/Multimedia/GSTreamer/Display/Waylandsink_Playback/run.sh
Outdated
Show resolved
Hide resolved
Runner/suites/Multimedia/GSTreamer/Display/Waylandsink_Playback/Waylandsink_Playback.yaml
Outdated
Show resolved
Hide resolved
Runner/suites/Multimedia/GSTreamer/Video/Video_Encode_Decode/run.sh
Outdated
Show resolved
Hide resolved
Runner/suites/Multimedia/GSTreamer/Video/Video_Encode_Decode/run.sh
Outdated
Show resolved
Hide resolved
Runner/suites/Multimedia/GSTreamer/Video/Video_Encode_Decode/run.sh
Outdated
Show resolved
Hide resolved
…r V4L2 video helper functions from Video_Encode_Decode test to shared lib_gstreamer.sh for code reuse across all GStreamer tests Signed-off-by: Nitin Nakka <nitinn@qti.qualcomm.com>
|
@nitinn22 Kindly close the comments where you've already addressed previous review feedback, so I can focus on the remaining ones. Also, please rebase your work on top of the main branch. Also Updated SPDX license identifiers from BSD-3-Clause-Clear to BSD-3-Clause per legal request. |
smuppand
left a comment
There was a problem hiding this comment.
README inconsistency (Waylandsink): help text says default test is “for 10s” but script default duration resolves to 30s. Update README/help examples.
README mismatch (Video): documentation lists encoded outputs like .h264/.h265, but the pipeline uses mp4mux and outputs .mp4. Update README to match reality.
Runner/suites/Multimedia/GSTreamer/Display/Waylandsink_Playback/Waylandsink_Playback.yaml
Outdated
Show resolved
Hide resolved
Runner/suites/Multimedia/GSTreamer/Video/Video_Encode_Decode/run.sh
Outdated
Show resolved
Hide resolved
Runner/suites/Multimedia/GSTreamer/Video/Video_Encode_Decode/run.sh
Outdated
Show resolved
Hide resolved
Runner/suites/Multimedia/GSTreamer/Video/Video_Encode_Decode/run.sh
Outdated
Show resolved
Hide resolved
Runner/suites/Multimedia/GSTreamer/Video/Video_Encode_Decode/run.sh
Outdated
Show resolved
Hide resolved
…video scripts based on review comments Signed-off-by: Nitin Nakka <nitinn@qti.qualcomm.com>
…l request Signed-off-by: Nitin Nakka <nitinn@qti.qualcomm.com>
Runner/suites/Multimedia/GSTreamer/Display/Waylandsink_Playback/run.sh
Outdated
Show resolved
Hide resolved
Runner/suites/Multimedia/GSTreamer/Display/Waylandsink_Playback/run.sh
Outdated
Show resolved
Hide resolved
Runner/suites/Multimedia/GSTreamer/Display/Waylandsink_Playback/run.sh
Outdated
Show resolved
Hide resolved
Runner/suites/Multimedia/GSTreamer/Display/Waylandsink_Playback/run.sh
Outdated
Show resolved
Hide resolved
Runner/suites/Multimedia/GSTreamer/Video/Video_Encode_Decode/run.sh
Outdated
Show resolved
Hide resolved
…omments Signed-off-by: Nitin Nakka <nitinn@qti.qualcomm.com>
smuppand
left a comment
There was a problem hiding this comment.
Better to address few before merge (non-blocking but important)
| parser="h265parse" | ||
| container="qtdemux" | ||
| ;; | ||
| vp9) |
There was a problem hiding this comment.
VP9 decode pipeline builder is broken (empty ${parser})
vp9)
parser=""
container="matroskademux"
;;
But later you print:
filesrc ... ! ${container} ! ${parser} ! ${decoder} ...
This becomes:
... ! matroskademux ! ! v4l2vp9dec ...
-> invalid pipeline. So either set a real parser (preferred: vp9parse if available), or conditionally omit the parser section when empty.
| SEARCH=$(dirname "$SEARCH") | ||
| done | ||
|
|
||
| if [ -z "$INIT_ENV" ]; then |
There was a problem hiding this comment.
Both tests do:
search init_env
if not found → exit 0
But TESTNAME/RES_FILE are declared after sourcing env/libs in some scripts. If init_env isn’t found, LAVA may have no result file → job looks “empty”.
declare TESTNAME + RES_FILE and create it before init_env search, and write FAIL/SKIP on early errors. Also would prefer to have the sourcing similar to https://github.com/qualcomm-linux/qcom-linux-testkit/blob/main/Runner/suites/Connectivity/Bluetooth/BT_SCAN/run.sh#L6
| done | ||
|
|
||
| # -------------------- Pre-checks -------------------- | ||
| check_dependencies "gst-launch-1.0 gst-inspect-1.0 grep head sed" >/dev/null 2>&1 || { |
There was a problem hiding this comment.
Dependency list doesn’t match actual commands used. include what you use, or guard optional commands:
Add tail date rm to deps, and guard pkill: command -v pkill >/dev/null 2>&1 && pkill -x gst-launch-1.0 >/dev/null 2>&1 || true
The scripts support GStreamer level validation for video and display,
Video: H.264/H.265/VP9 encode/decode with V4L2
Display: Wayland compositor validation
More info in their corresponding readme files.